home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1994-07-28 | 8.1 KB | [TEXT/MMCC] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Thu Jul 28 16:51:11 1994, modified Thu Jul 28 16:51:11 1994, creator 'MMCC', type ASCII, 7566 bytes "CLUTLess.c" , at 0x1e0e 428 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MMCC] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0a 43 4c 55 54 4c 65 | 73 73 2e 63 00 00 00 00 |..CLUTLe|ss.c....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 4d 43 | 43 01 00 00 00 00 00 00 |.TEXTMMC|C.......|
|00000050| 00 00 00 00 00 1d 8e 00 | 00 01 ac aa 5d ca bf aa |........|....]...|
|00000060| 5d ca bf 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |].......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 34 32 00 00 |........|....42..|
|00000080| 2f 2a 20 09 0d 09 09 09 | 09 09 09 09 43 4c 55 54 |/* .....|....CLUT|
|00000090| 4c 65 73 73 0d 09 09 09 | 09 09 09 09 0d 09 09 09 |Less....|........|
|000000a0| 49 6e 20 73 6f 6d 65 20 | 69 6e 73 74 61 6e 63 65 |In some |instance|
|000000b0| 73 20 69 74 20 69 73 20 | 64 65 73 69 72 65 61 62 |s it is |desireab|
|000000c0| 6c 65 20 74 6f 20 73 74 | 6f 72 65 20 70 69 63 74 |le to st|ore pict|
|000000d0| 73 20 73 74 72 69 70 70 | 65 64 20 6f 66 0d 09 09 |s stripp|ed of...|
|000000e0| 09 43 4c 55 54 73 20 69 | 6e 20 6f 72 64 65 72 20 |.CLUTs i|n order |
|000000f0| 74 6f 20 73 61 76 65 20 | 73 6f 6d 65 20 72 6f 6f |to save |some roo|
|00000100| 6d 20 69 6e 20 74 68 65 | 20 64 69 73 6b 2e 20 54 |m in the| disk. T|
|00000110| 68 69 73 20 73 61 6d 70 | 6c 65 20 73 68 6f 77 73 |his samp|le shows|
|00000120| 0d 09 09 09 68 6f 77 20 | 74 6f 20 63 72 65 61 74 |....how |to creat|
|00000130| 65 20 73 75 63 68 20 70 | 69 63 74 73 20 61 6e 64 |e such p|icts and|
|00000140| 20 68 6f 77 20 74 6f 20 | 70 72 6f 70 65 72 6c 79 | how to |properly|
|00000150| 20 64 69 73 70 6c 61 79 | 20 74 68 65 6d 20 62 61 | display| them ba|
|00000160| 63 6b 2e 0d 09 09 09 0d | 09 09 09 53 69 6d 70 6c |ck......|...Simpl|
|00000170| 65 49 6e 43 2e 63 20 2d | 2d 20 69 6e 69 74 69 61 |eInC.c -|- initia|
|00000180| 6c 69 7a 61 74 69 6f 6e | 20 73 74 75 66 66 20 61 |lization| stuff a|
|00000190| 6e 64 20 65 76 65 6e 74 | 20 6c 6f 6f 70 0d 09 09 |nd event| loop...|
|000001a0| 09 43 4c 55 54 4c 65 73 | 73 2e 63 20 20 2d 2d 20 |.CLUTLes|s.c -- |
|000001b0| 63 6f 64 65 20 74 68 61 | 74 20 64 6f 65 73 20 74 |code tha|t does t|
|000001c0| 68 65 20 63 72 65 61 74 | 69 6f 6e 20 6f 66 20 74 |he creat|ion of t|
|000001d0| 68 65 20 63 6c 75 74 20 | 6c 65 73 73 20 70 69 63 |he clut |less pic|
|000001e0| 74 3b 0d 09 09 09 09 09 | 09 20 20 20 73 68 6f 77 |t;......|. show|
|000001f0| 73 20 61 6c 73 6f 20 68 | 6f 77 20 74 6f 20 64 69 |s also h|ow to di|
|00000200| 73 70 6c 61 79 20 74 68 | 65 20 70 69 63 74 75 72 |splay th|e pictur|
|00000210| 65 73 2e 0d 09 09 09 43 | 4c 55 54 4c 65 73 73 46 |es.....C|LUTLessF|
|00000220| 69 6c 65 2e 63 20 2d 2d | 0d 09 09 09 09 09 09 20 |ile.c --|....... |
|00000230| 20 20 52 6f 75 74 69 6e | 65 73 20 74 6f 20 61 63 | Routin|es to ac|
|00000240| 63 65 73 73 20 66 69 6c | 65 73 20 74 68 61 74 20 |cess fil|es that |
|00000250| 68 61 76 65 20 6e 6f 20 | 64 69 72 65 63 74 0d 09 |have no |direct..|
|00000260| 09 09 09 09 09 20 20 20 | 72 65 6c 61 74 69 6f 6e |..... |relation|
|00000270| 73 68 69 70 20 77 69 74 | 68 20 70 69 63 74 75 72 |ship wit|h pictur|
|00000280| 65 20 68 61 6e 64 6c 69 | 6e 67 2e 0d 09 0d 2a 2f |e handli|ng....*/|
|00000290| 0d 0d 2f 2a 09 49 6e 20 | 63 61 73 65 73 20 77 68 |../*.In |cases wh|
|000002a0| 65 6e 20 74 68 65 72 65 | 20 69 73 20 61 20 6c 61 |en there| is a la|
|000002b0| 72 67 65 20 6e 75 6d 62 | 65 72 20 6f 66 20 70 69 |rge numb|er of pi|
|000002c0| 63 74 73 20 63 6f 6e 74 | 61 69 6e 69 6e 67 20 65 |cts cont|aining e|
|000002d0| 69 67 68 74 20 62 69 74 | 20 70 69 78 6d 61 70 73 |ight bit| pixmaps|
|000002e0| 0d 09 74 68 65 20 63 6f | 6c 6f 72 20 74 61 62 6c |..the co|lor tabl|
|000002f0| 65 20 61 73 73 6f 63 69 | 61 74 65 64 20 74 6f 20 |e associ|ated to |
|00000300| 65 61 63 68 20 6f 6e 65 | 20 6f 66 20 74 68 65 6d |each one| of them|
|00000310| 20 6d 61 79 20 61 64 64 | 20 74 6f 20 61 20 6c 61 | may add| to a la|
|00000320| 72 67 65 20 61 6d 6d 6f | 75 6e 74 2c 20 69 6e 20 |rge ammo|unt, in |
|00000330| 74 68 65 0d 09 63 61 73 | 65 73 20 77 68 65 6e 20 |the..cas|es when |
|00000340| 74 68 65 20 63 6f 6c 6f | 72 20 74 61 62 6c 65 20 |the colo|r table |
|00000350| 66 6f 72 20 74 68 65 20 | 64 69 66 66 65 72 65 6e |for the |differen|
|00000360| 74 20 69 6d 61 67 65 73 | 20 69 73 20 74 68 65 20 |t images| is the |
|00000370| 73 61 6d 65 20 69 74 20 | 69 73 20 70 6f 73 73 69 |same it |is possi|
|00000380| 62 6c 65 0d 09 74 6f 20 | 73 61 76 65 20 74 68 65 |ble..to |save the|
|00000390| 20 64 69 73 6b 20 73 70 | 61 63 65 20 62 79 20 73 | disk sp|ace by s|
|000003a0| 74 6f 72 69 6e 67 20 74 | 68 65 20 69 6d 61 67 65 |toring t|he image|
|000003b0| 73 20 77 69 74 68 20 6f | 75 74 20 63 6c 75 74 73 |s with o|ut cluts|
|000003c0| 2c 20 73 74 6f 72 69 6e | 67 20 6f 6e 65 20 63 6f |, storin|g one co|
|000003d0| 70 79 20 6f 66 0d 09 74 | 68 65 20 63 6c 75 74 20 |py of..t|he clut |
|000003e0| 61 6e 64 20 74 68 65 6e | 20 27 72 65 73 6f 74 72 |and then| 'resotr|
|000003f0| 69 6e 67 20 74 68 65 20 | 63 6c 75 74 20 77 68 65 |ing the |clut whe|
|00000400| 6e 20 64 69 73 70 6c 61 | 79 69 6e 67 20 74 68 65 |n displa|ying the|
|00000410| 20 69 6d 61 67 65 2e 0d | 09 0d 09 54 68 69 73 20 | image..|...This |
|00000420| 6d 61 79 20 62 65 20 73 | 70 65 63 69 61 6c 6c 79 |may be s|pecially|
|00000430| 20 69 6d 70 6f 72 74 61 | 6e 74 20 66 6f 72 20 63 | importa|nt for c|
|00000440| 64 20 62 61 73 65 64 20 | 61 70 70 73 20 74 68 61 |d based |apps tha|
|00000450| 74 20 68 61 6e 64 6c 65 | 20 6c 61 72 67 65 20 6e |t handle| large n|
|00000460| 75 6d 62 65 72 20 6f 66 | 20 69 6d 61 67 65 73 2e |umber of| images.|
|00000470| 0d 09 4c 65 74 20 61 73 | 73 75 6d 65 20 66 6f 72 |..Let as|sume for|
|00000480| 20 73 69 6d 70 6c 69 63 | 69 74 79 20 74 68 61 74 | simplic|ity that|
|00000490| 20 65 61 63 68 20 70 69 | 63 74 75 72 65 20 63 6f | each pi|cture co|
|000004a0| 6e 74 61 69 6e 73 20 6f | 6e 6c 79 20 6f 6e 65 20 |ntains o|nly one |
|000004b0| 70 69 78 6d 61 70 20 73 | 6f 20 74 68 65 20 6d 61 |pixmap s|o the ma|
|000004c0| 74 68 0d 09 67 6f 65 73 | 20 6c 69 6b 65 20 74 68 |th..goes| like th|
|000004d0| 69 73 2c 20 43 4c 55 54 | 20 73 69 7a 65 20 3d 20 |is, CLUT| size = |
|000004e0| 73 65 65 64 09 09 09 09 | 34 0d 09 09 09 09 09 09 |seed....|4.......|
|000004f0| 09 09 66 6c 61 67 73 09 | 09 09 09 32 0d 09 09 09 |..flags.|...2....|
|00000500| 09 09 09 09 09 73 69 7a | 65 09 09 09 09 32 0d 09 |.....siz|e....2..|
|00000510| 09 09 09 09 09 09 09 63 | 74 54 61 62 6c 65 20 32 |.......c|tTable 2|
|00000520| 35 36 2a 38 09 20 32 30 | 34 38 0d 09 09 09 09 09 |56*8. 20|48......|
|00000530| 09 09 09 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...-----|--------|
|00000540| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 09 09 09 09 09 09 09 |--------|........|
|00000550| 09 09 09 09 09 32 4b 20 | 70 65 72 20 70 69 63 74 |.....2K |per pict|
|00000560| 0d 09 53 6f 20 69 66 20 | 74 68 65 20 63 64 20 63 |..So if |the cd c|
|00000570| 6f 6e 74 61 69 6e 73 20 | 31 30 30 30 20 70 69 63 |ontains |1000 pic|
|00000580| 74 75 72 65 73 20 74 68 | 65 20 73 61 76 69 6e 67 |tures th|e saving|
|00000590| 73 20 63 6f 75 6c 64 20 | 62 65 20 69 6d 70 6f 72 |s could |be impor|
|000005a0| 74 61 6e 74 2e 0d 09 0d | 09 4e 6f 74 65 20 74 68 |tant....|.Note th|
|000005b0| 61 74 20 74 68 65 72 65 | 20 69 73 20 74 68 65 20 |at there| is the |
|000005c0| 61 73 73 75 6d 70 74 69 | 6f 6e 20 68 65 72 65 20 |assumpti|on here |
|000005d0| 74 68 61 74 20 74 68 65 | 20 6e 75 6d 62 65 72 20 |that the| number |
|000005e0| 6f 66 20 70 69 63 74 73 | 20 74 68 61 74 20 63 61 |of picts| that ca|
|000005f0| 6e 20 62 65 20 72 65 6e | 64 65 72 65 64 20 75 73 |n be ren|dered us|
|00000600| 69 6e 67 0d 09 74 68 65 | 20 73 61 6d 65 20 63 6c |ing..the| same cl|
|00000610| 75 74 20 69 73 20 6c 61 | 72 67 65 2c 20 69 66 20 |ut is la|rge, if |
|00000620| 74 68 69 73 20 69 73 20 | 6e 6f 74 20 74 72 75 65 |this is |not true|
|00000630| 20 74 68 65 6e 20 74 68 | 65 20 6f 76 65 72 68 65 | then th|e overhe|
|00000640| 61 64 20 69 73 20 6e 6f | 74 20 77 6f 72 74 68 20 |ad is no|t worth |
|00000650| 69 74 2e 0d 09 0d 09 28 | 54 68 65 20 73 61 6d 70 |it.....(|The samp|
|00000660| 6c 65 20 75 73 65 73 20 | 61 20 70 69 63 74 75 72 |le uses |a pictur|
|00000670| 65 20 74 6f 20 62 65 67 | 69 6e 20 77 69 74 68 20 |e to beg|in with |
|00000680| 62 75 74 20 74 68 69 73 | 20 69 73 20 6e 6f 74 20 |but this| is not |
|00000690| 69 6d 70 6f 72 74 61 6e | 74 2e 29 0d 2a 2f 0d 0d |importan|t.).*/..|
|000006a0| 23 69 6e 63 6c 75 64 65 | 20 22 43 4c 55 54 4c 65 |#include| "CLUTLe|
|000006b0| 73 73 2e 68 22 0d 0d 2f | 2a 09 54 68 65 20 77 61 |ss.h"../|*.The wa|
|000006c0| 79 20 77 65 20 61 72 65 | 20 67 6f 69 6e 67 20 74 |y we are| going t|
|000006d0| 6f 20 68 61 6e 64 6c 65 | 20 74 68 69 73 20 69 73 |o handle| this is|
|000006e0| 20 74 68 65 20 66 6f 6c | 6c 6f 77 69 6e 67 3a 0d | the fol|lowing:.|
|000006f0| 0d 09 2d 20 43 72 65 61 | 74 65 20 50 49 43 54 20 |..- Crea|te PICT |
|00000700| 66 69 6c 65 20 63 6f 6e | 74 61 69 6e 69 6e 67 20 |file con|taining |
|00000710| 73 74 72 69 70 65 64 20 | 70 69 78 6d 61 70 20 61 |striped |pixmap a|
|00000720| 6e 64 20 61 6c 73 6f 20 | 74 68 65 20 27 63 6c 75 |nd also |the 'clu|
|00000730| 74 27 0d 09 2d 20 52 65 | 61 64 20 69 6e 20 74 68 |t'..- Re|ad in th|
|00000740| 65 20 70 69 63 74 75 72 | 65 20 61 6e 64 20 69 74 |e pictur|e and it|
|00000750| 73 20 61 63 63 6f 6d 70 | 61 6e 79 69 6e 67 20 63 |s accomp|anying c|
|00000760| 6c 75 74 0d 09 0d 09 4e | 6f 74 65 20 74 68 61 74 |lut....N|ote that|
|00000770| 20 66 6f 72 20 74 68 65 | 20 70 75 72 70 6f 73 65 | for the| purpose|
|00000780| 73 20 6f 66 20 74 68 69 | 73 20 73 61 6d 70 6c 65 |s of thi|s sample|
|00000790| 20 77 65 20 75 73 65 20 | 6e 6f 20 73 70 6f 6f 6c | we use |no spool|
|000007a0| 69 6e 67 20 62 75 74 20 | 74 68 69 73 20 64 6f 65 |ing but |this doe|
|000007b0| 73 20 6e 6f 74 0d 09 6d | 65 61 6e 20 74 68 61 74 |s not..m|ean that|
|000007c0| 20 69 74 20 69 73 20 6e | 6f 74 20 70 6f 73 73 69 | it is n|ot possi|
|000007d0| 62 6c 65 20 74 6f 20 75 | 73 65 20 74 68 65 20 74 |ble to u|se the t|
|000007e0| 65 63 68 6e 69 71 75 65 | 73 20 64 65 73 63 72 69 |echnique|s descri|
|000007f0| 62 65 64 20 68 65 72 65 | 20 74 6f 20 63 72 65 61 |bed here| to crea|
|00000800| 74 65 0d 09 61 6e 64 20 | 64 69 73 70 6c 61 79 20 |te..and |display |
|00000810| 70 69 63 74 75 72 65 73 | 20 61 6c 6f 6e 67 20 77 |pictures| along w|
|00000820| 69 74 68 20 66 69 6c 65 | 20 73 70 6f 6f 6c 69 6e |ith file| spoolin|
|00000830| 67 2e 0d 2a 2f 0d 0d 2f | 2a 20 70 72 6f 63 20 72 |g..*/../|* proc r|
|00000840| 65 74 75 72 6e 73 20 74 | 72 75 65 20 69 66 20 74 |eturns t|rue if t|
|00000850| 68 65 20 6f 72 69 67 69 | 6e 61 6c 20 70 69 63 74 |he origi|nal pict|
|00000860| 75 72 65 20 68 61 73 20 | 62 65 65 6e 20 72 65 61 |ure has |been rea|
|00000870| 64 20 69 6e 2c 20 61 6e | 64 20 61 20 70 69 63 74 |d in, an|d a pict|
|00000880| 0d 20 20 20 66 69 6c 65 | 20 77 61 73 20 72 65 61 |. file| was rea|
|00000890| 64 20 69 6e 20 73 75 63 | 63 65 73 73 66 75 6c 79 |d in suc|cessfuly|
|000008a0| 2e 0d 2a 2f 0d 42 6f 6f | 6c 65 61 6e 20 53 65 74 |..*/.Boo|lean Set|
|000008b0| 75 70 50 69 63 74 75 72 | 65 73 28 76 6f 69 64 29 |upPictur|es(void)|
|000008c0| 0d 7b 0d 09 42 6f 6f 6c | 65 61 6e 20 72 65 73 75 |.{..Bool|ean resu|
|000008d0| 6c 74 20 3d 20 66 61 6c | 73 65 3b 0d 0d 09 69 66 |lt = fal|se;...if|
|000008e0| 20 28 20 53 61 76 65 50 | 69 63 74 75 72 65 28 29 | ( SaveP|icture()|
|000008f0| 20 29 20 7b 09 09 09 2f | 2f 20 20 50 69 63 74 20 | ) {.../|/ Pict |
|00000900| 66 69 6c 65 20 77 61 73 | 20 63 72 65 61 74 65 64 |file was| created|
|00000910| 2e 0d 09 20 20 72 65 73 | 75 6c 74 20 3d 20 47 65 |... res|ult = Ge|
|00000920| 74 50 69 63 74 42 61 63 | 6b 28 29 3b 09 09 2f 2f |tPictBac|k();..//|
|00000930| 20 20 61 6e 64 20 72 65 | 2d 61 63 71 69 72 65 64 | and re|-acqired|
|00000940| 0d 09 7d 0d 09 72 65 74 | 75 72 6e 20 72 65 73 75 |..}..ret|urn resu|
|00000950| 6c 74 3b 0d 7d 0d 0d 09 | 0d 2f 2a 20 3d 3d 3d 3d |lt;.}...|./* ====|
|00000960| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000970| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000980| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000990| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000009a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000009b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 20 2a 2f 0d 2f |========|=== */./|
|000009c0| 2a 20 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |* ======|========|
|000009d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000009e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000009f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000a00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000a10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000a20| 3d 20 2a 2f 0d 2f 2a 0d | 09 48 65 72 65 20 77 65 |= */./*.|.Here we|
|00000a30| 20 63 72 65 61 74 65 20 | 74 68 65 20 70 69 63 74 | create |the pict|
|00000a40| 75 72 65 20 61 6e 64 20 | 73 61 76 65 20 69 74 20 |ure and |save it |
|00000a50| 74 6f 20 64 69 73 6b 0d | 09 0d 2a 2f 0d 42 6f 6f |to disk.|..*/.Boo|
|00000a60| 6c 65 61 6e 20 53 61 76 | 65 50 69 63 74 75 72 65 |lean Sav|ePicture|
|00000a70| 28 76 6f 69 64 29 0d 7b | 0d 47 57 6f 72 6c 64 50 |(void).{|.GWorldP|
|00000a80| 74 72 20 09 6d 79 47 57 | 6f 72 6c 64 3b 0d 52 65 |tr .myGW|orld;.Re|
|00000a90| 63 74 09 09 67 77 52 65 | 63 74 3b 0d 42 6f 6f 6c |ct..gwRe|ct;.Bool|
|00000aa0| 65 61 6e 20 09 72 65 73 | 75 6c 74 20 3d 20 74 72 |ean .res|ult = tr|
|00000ab0| 75 65 3b 20 2f 2f 20 72 | 65 74 75 72 6e 20 74 72 |ue; // r|eturn tr|
|00000ac0| 75 65 20 69 6e 20 63 61 | 73 65 20 75 73 65 72 20 |ue in ca|se user |
|00000ad0| 6a 75 73 74 20 77 61 6e | 74 73 20 74 6f 20 64 69 |just wan|ts to di|
|00000ae0| 73 70 6c 61 79 20 61 20 | 66 69 6c 65 0d 43 47 72 |splay a |file.CGr|
|00000af0| 61 66 50 74 72 09 6f 6c | 64 50 6f 72 74 3b 0d 47 |afPtr.ol|dPort;.G|
|00000b00| 44 48 61 6e 64 6c 65 09 | 6f 6c 64 44 65 76 69 63 |DHandle.|oldDevic|
|00000b10| 65 3b 0d 50 69 63 48 61 | 6e 64 6c 65 09 6c 6f 63 |e;.PicHa|ndle.loc|
|00000b20| 61 6c 50 69 63 74 3b 0d | 0d 09 47 65 74 47 57 6f |alPict;.|..GetGWo|
|00000b30| 72 6c 64 28 26 6f 6c 64 | 50 6f 72 74 2c 20 26 6f |rld(&old|Port, &o|
|00000b40| 6c 64 44 65 76 69 63 65 | 29 3b 0d 09 2f 2f 20 09 |ldDevice|);..// .|
|00000b50| 46 69 72 73 74 20 77 65 | 20 67 65 74 20 74 68 65 |First we| get the|
|00000b60| 20 6f 72 69 67 69 6e 61 | 6c 20 70 69 63 74 20 66 | origina|l pict f|
|00000b70| 72 6f 6d 20 61 20 72 65 | 73 6f 75 72 63 65 2e 0d |rom a re|source..|
|00000b80| 09 69 66 20 28 20 21 28 | 20 67 4f 72 69 67 50 69 |.if ( !(| gOrigPi|
|00000b90| 63 74 20 3d 20 47 65 74 | 50 69 63 74 75 72 65 28 |ct = Get|Picture(|
|00000ba0| 70 69 63 74 49 44 29 20 | 29 29 20 67 6f 74 6f 20 |pictID) |)) goto |
|00000bb0| 62 61 69 6c 3b 20 2f 2f | 20 77 68 61 74 20 75 73 |bail; //| what us|
|00000bc0| 65 20 69 66 20 6e 6f 20 | 70 69 63 74 75 72 65 0d |e if no |picture.|
|00000bd0| 09 44 65 74 61 63 68 52 | 65 73 6f 75 72 63 65 28 |.DetachR|esource(|
|00000be0| 28 48 61 6e 64 6c 65 29 | 67 4f 72 69 67 50 69 63 |(Handle)|gOrigPic|
|00000bf0| 74 29 3b 09 09 09 09 09 | 09 09 2f 2f 20 67 6f 65 |t);.....|..// goe|
|00000c00| 73 20 61 77 61 79 20 77 | 68 65 6e 20 61 70 70 20 |s away w|hen app |
|00000c10| 71 75 69 74 73 0d 09 67 | 43 75 72 72 50 69 63 74 |quits..g|CurrPict|
|00000c20| 20 3d 20 67 4f 72 69 67 | 50 69 63 74 3b 0d 09 0d | = gOrig|Pict;...|
|00000c30| 09 67 77 52 65 63 74 20 | 3d 20 28 2a 67 4f 72 69 |.gwRect |= (*gOri|
|00000c40| 67 50 69 63 74 29 2d 3e | 20 70 69 63 46 72 61 6d |gPict)->| picFram|
|00000c50| 65 3b 0d 09 0d 09 69 66 | 20 28 20 4e 65 77 47 57 |e;....if| ( NewGW|
|00000c60| 6f 72 6c 64 28 26 6d 79 | 47 57 6f 72 6c 64 2c 20 |orld(&my|GWorld, |
|00000c70| 64 65 73 69 72 65 64 44 | 65 70 74 68 2c 20 26 67 |desiredD|epth, &g|
|00000c80| 77 52 65 63 74 2c 20 6e | 69 6c 2c 20 6e 69 6c 2c |wRect, n|il, nil,|
|00000c90| 20 30 29 20 29 20 67 6f | 74 6f 20 62 61 69 6c 3b | 0) ) go|to bail;|
|00000ca0| 20 2f 2f 20 6e 6f 20 6f | 66 66 73 63 72 65 65 6e | // no o|ffscreen|
|00000cb0| 0d 09 69 66 20 28 4c 6f | 63 6b 50 69 78 65 6c 73 |..if (Lo|ckPixels|
|00000cc0| 28 47 65 74 47 57 6f 72 | 6c 64 50 69 78 4d 61 70 |(GetGWor|ldPixMap|
|00000cd0| 28 6d 79 47 57 6f 72 6c | 64 29 29 29 20 7b 0d 09 |(myGWorl|d))) {..|
|00000ce0| 0d 09 20 20 53 65 74 47 | 57 6f 72 6c 64 28 6d 79 |.. SetG|World(my|
|00000cf0| 47 57 6f 72 6c 64 2c 20 | 6e 69 6c 29 3b 09 09 09 |GWorld, |nil);...|
|00000d00| 09 2f 2f 20 64 72 61 77 | 20 74 68 65 20 69 6d 61 |.// draw| the ima|
|00000d10| 67 65 20 6f 66 66 73 63 | 72 65 65 6e 0d 09 20 20 |ge offsc|reen.. |
|00000d20| 44 72 61 77 50 69 63 74 | 75 72 65 28 67 4f 72 69 |DrawPict|ure(gOri|
|00000d30| 67 50 69 63 74 2c 20 26 | 67 77 52 65 63 74 29 3b |gPict, &|gwRect);|
|00000d40| 0d 09 20 20 53 65 74 47 | 57 6f 72 6c 64 28 6f 6c |.. SetG|World(ol|
|00000d50| 64 50 6f 72 74 2c 20 6f | 6c 64 44 65 76 69 63 65 |dPort, o|ldDevice|
|00000d60| 29 3b 0d 09 20 20 69 66 | 20 28 20 6c 6f 63 61 6c |);.. if| ( local|
|00000d70| 50 69 63 74 20 3d 20 43 | 72 65 61 74 65 43 4c 55 |Pict = C|reateCLU|
|00000d80| 54 4c 65 73 73 50 69 63 | 74 28 6d 79 47 57 6f 72 |TLessPic|t(myGWor|
|00000d90| 6c 64 29 20 29 20 7b 0d | 09 20 20 20 20 69 66 20 |ld) ) {.|. if |
|00000da0| 28 20 53 61 76 65 43 4c | 55 54 4c 65 73 73 50 69 |( SaveCL|UTLessPi|
|00000db0| 63 74 28 6c 6f 63 61 6c | 50 69 63 74 29 20 29 20 |ct(local|Pict) ) |
|00000dc0| 7b 0d 09 09 20 20 72 65 | 73 75 6c 74 20 3d 20 74 |{... re|sult = t|
|00000dd0| 72 75 65 3b 0d 09 09 7d | 0d 09 20 20 7d 0d 09 20 |rue;...}|.. }.. |
|00000de0| 20 55 6e 6c 6f 63 6b 50 | 69 78 65 6c 73 28 47 65 | UnlockP|ixels(Ge|
|00000df0| 74 47 57 6f 72 6c 64 50 | 69 78 4d 61 70 28 6d 79 |tGWorldP|ixMap(my|
|00000e00| 47 57 6f 72 6c 64 29 29 | 3b 0d 09 20 20 44 69 73 |GWorld))|;.. Dis|
|00000e10| 70 6f 73 65 47 57 6f 72 | 6c 64 28 6d 79 47 57 6f |poseGWor|ld(myGWo|
|00000e20| 72 6c 64 29 3b 0d 09 7d | 0d 62 61 69 6c 3a 0d 09 |rld);..}|.bail:..|
|00000e30| 72 65 74 75 72 6e 20 72 | 65 73 75 6c 74 3b 0d 7d |return r|esult;.}|
|00000e40| 0d 0d 2f 2a 20 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |../* ===|========|
|00000e50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ea0| 3d 3d 3d 3d 20 2a 2f 0d | 2f 2a 0d 09 74 68 65 20 |==== */.|/*..the |
|00000eb0| 70 72 6f 63 65 73 73 20 | 77 65 20 77 61 6e 74 20 |process |we want |
|00000ec0| 74 6f 20 65 78 65 6d 70 | 6c 69 66 79 20 77 68 65 |to exemp|lify whe|
|00000ed0| 6e 20 63 72 65 61 74 69 | 6e 67 20 74 68 65 20 70 |n creati|ng the p|
|00000ee0| 69 63 74 75 72 65 20 69 | 73 20 74 68 65 20 66 6f |icture i|s the fo|
|00000ef0| 6c 6c 6f 77 69 6e 67 3a | 0d 09 0d 09 31 2d 20 43 |llowing:|....1- C|
|00000f00| 72 65 61 74 65 20 61 20 | 47 57 6f 72 6c 64 20 61 |reate a |GWorld a|
|00000f10| 6e 64 20 27 64 69 73 70 | 6c 61 79 27 20 74 68 65 |nd 'disp|lay' the|
|00000f20| 20 69 6d 61 67 65 20 74 | 68 65 72 65 2e 0d 09 32 | image t|here...2|
|00000f30| 2d 20 43 61 6c 6c 20 4f | 70 65 6e 50 69 63 74 75 |- Call O|penPictu|
|00000f40| 72 65 20 74 6f 20 73 74 | 61 72 74 20 72 65 63 6f |re to st|art reco|
|00000f50| 72 64 69 6e 67 0d 09 33 | 2d 20 09 53 65 74 20 74 |rding..3|- .Set t|
|00000f60| 68 65 20 63 6f 6c 6f 72 | 20 74 61 62 6c 65 20 68 |he color| table h|
|00000f70| 61 6e 64 6c 65 20 69 6e | 20 74 68 65 20 73 6f 75 |andle in| the sou|
|00000f80| 72 63 65 20 70 69 78 6d | 61 70 20 74 6f 20 6e 69 |rce pixm|ap to ni|
|00000f90| 6c 0d 09 34 2d 20 20 43 | 61 6c 6c 20 43 6f 70 79 |l..4- C|all Copy|
|00000fa0| 42 69 74 73 20 74 6f 20 | 73 74 6f 72 65 20 74 68 |Bits to |store th|
|00000fb0| 65 20 69 6d 61 67 65 20 | 73 61 6e 73 20 63 6c 75 |e image |sans clu|
|00000fc0| 74 20 69 6e 20 74 68 65 | 20 70 69 63 74 75 72 65 |t in the| picture|
|00000fd0| 0d 09 35 2d 20 43 61 6c | 6c 20 43 6c 6f 73 65 50 |..5- Cal|l CloseP|
|00000fe0| 69 63 74 75 72 65 20 74 | 6f 20 63 6f 6d 70 6c 65 |icture t|o comple|
|00000ff0| 74 65 20 74 68 65 20 70 | 72 6f 63 65 73 73 0d 09 |te the p|rocess..|
|00001000| 0d 2a 2f 0d 50 69 63 48 | 61 6e 64 6c 65 20 43 72 |.*/.PicH|andle Cr|
|00001010| 65 61 74 65 43 4c 55 54 | 4c 65 73 73 50 69 63 74 |eateCLUT|LessPict|
|00001020| 28 47 57 6f 72 6c 64 50 | 74 72 20 6d 79 47 57 6f |(GWorldP|tr myGWo|
|00001030| 72 6c 64 29 20 7b 20 2f | 2f 20 61 74 20 74 68 69 |rld) { /|/ at thi|
|00001040| 73 20 70 6f 69 6e 74 20 | 63 6c 75 74 20 69 73 20 |s point |clut is |
|00001050| 61 6c 72 65 61 64 79 20 | 6c 6f 63 6b 65 64 0d 0d |already |locked..|
|00001060| 50 69 63 48 61 6e 64 6c | 65 20 09 09 6e 65 77 20 |PicHandl|e ..new |
|00001070| 3d 20 6e 69 6c 3b 0d 50 | 69 78 4d 61 70 48 61 6e |= nil;.P|ixMapHan|
|00001080| 64 6c 65 20 09 70 6d 3b | 0d 42 69 74 4d 61 70 20 |dle .pm;|.BitMap |
|00001090| 09 09 09 2a 73 72 63 50 | 69 78 3b 0d 52 65 63 74 |...*srcP|ix;.Rect|
|000010a0| 20 09 09 09 6f 66 66 52 | 65 63 74 20 3d 20 6d 79 | ...offR|ect = my|
|000010b0| 47 57 6f 72 6c 64 2d 3e | 70 6f 72 74 52 65 63 74 |GWorld->|portRect|
|000010c0| 3b 0d 43 47 72 61 66 50 | 74 72 09 6f 6c 64 50 6f |;.CGrafP|tr.oldPo|
|000010d0| 72 74 3b 0d 47 44 48 61 | 6e 64 6c 65 09 6f 6c 64 |rt;.GDHa|ndle.old|
|000010e0| 44 65 76 69 63 65 3b 0d | 0d 09 47 65 74 47 57 6f |Device;.|..GetGWo|
|000010f0| 72 6c 64 28 26 6f 6c 64 | 50 6f 72 74 2c 20 26 6f |rld(&old|Port, &o|
|00001100| 6c 64 44 65 76 69 63 65 | 29 3b 0d 0d 09 70 6d 20 |ldDevice|);...pm |
|00001110| 3d 20 47 65 74 47 57 6f | 72 6c 64 50 69 78 4d 61 |= GetGWo|rldPixMa|
|00001120| 70 28 6d 79 47 57 6f 72 | 6c 64 29 3b 0d 09 48 4c |p(myGWor|ld);..HL|
|00001130| 6f 63 6b 28 28 48 61 6e | 64 6c 65 29 70 6d 29 3b |ock((Han|dle)pm);|
|00001140| 0d 09 73 72 63 50 69 78 | 20 3d 20 28 42 69 74 4d |..srcPix| = (BitM|
|00001150| 61 70 20 2a 29 20 2a 70 | 6d 3b 09 09 09 09 09 2f |ap *) *p|m;...../|
|00001160| 2f 20 67 65 74 20 70 6f | 69 6e 74 65 72 20 74 6f |/ get po|inter to|
|00001170| 20 6d 61 6b 65 20 63 6f | 64 65 20 6d 6f 72 65 20 | make co|de more |
|00001180| 72 65 61 64 61 62 6c 65 | 0d 09 67 53 68 61 72 65 |readable|..gShare|
|00001190| 64 43 6c 75 74 20 3d 20 | 28 2a 70 6d 29 2d 3e 70 |dClut = |(*pm)->p|
|000011a0| 6d 54 61 62 6c 65 3b 0d | 09 28 2a 70 6d 29 2d 3e |mTable;.|.(*pm)->|
|000011b0| 70 6d 54 61 62 6c 65 20 | 3d 20 6e 69 6c 3b 09 09 |pmTable |= nil;..|
|000011c0| 09 09 09 09 2f 2f 20 73 | 65 74 20 70 69 78 6d 61 |....// s|et pixma|
|000011d0| 70 20 63 6c 75 74 20 74 | 6f 20 6e 69 6c 0d 0d 09 |p clut t|o nil...|
|000011e0| 53 65 74 47 57 6f 72 6c | 64 28 6d 79 47 57 6f 72 |SetGWorl|d(myGWor|
|000011f0| 6c 64 2c 20 6e 69 6c 29 | 3b 09 09 09 0d 09 43 6c |ld, nil)|;.....Cl|
|00001200| 69 70 52 65 63 74 28 26 | 6f 66 66 52 65 63 74 29 |ipRect(&|offRect)|
|00001210| 3b 0d 09 6e 65 77 20 3d | 20 4f 70 65 6e 50 69 63 |;..new =| OpenPic|
|00001220| 74 75 72 65 28 26 6f 66 | 66 52 65 63 74 29 3b 20 |ture(&of|fRect); |
|00001230| 09 09 2f 2f 20 67 57 6f | 72 6c 64 20 72 65 63 74 |..// gWo|rld rect|
|00001240| 20 77 61 73 20 63 72 65 | 61 74 65 64 20 66 72 6f | was cre|ated fro|
|00001250| 6d 20 70 69 63 74 20 72 | 65 63 74 0d 09 09 43 6f |m pict r|ect...Co|
|00001260| 70 79 42 69 74 73 28 73 | 72 63 50 69 78 2c 20 09 |pyBits(s|rcPix, .|
|00001270| 09 09 09 2f 2f 20 77 68 | 65 6e 20 63 72 65 61 74 |...// wh|en creat|
|00001280| 69 6e 67 20 61 20 70 69 | 63 74 20 73 6f 75 72 63 |ing a pi|ct sourc|
|00001290| 65 20 69 73 20 77 68 61 | 74 20 72 65 61 6c 6c 79 |e is wha|t really|
|000012a0| 20 6d 61 74 74 65 72 73 | 0d 09 09 09 09 20 73 72 | matters|..... sr|
|000012b0| 63 50 69 78 2c 20 09 09 | 09 09 2f 2f 20 75 73 65 |cPix, ..|..// use|
|000012c0| 20 73 61 6d 65 20 61 73 | 20 64 65 73 74 0d 09 09 | same as| dest...|
|000012d0| 20 20 20 20 20 20 20 20 | 20 26 6f 66 66 52 65 63 | | &offRec|
|000012e0| 74 2c 09 09 09 09 2f 2f | 20 6e 69 63 65 20 72 65 |t,....//| nice re|
|000012f0| 63 74 0d 09 09 09 09 20 | 26 6f 66 66 52 65 63 74 |ct..... |&offRect|
|00001300| 2c 09 09 09 09 2f 2f 20 | 73 61 6d 65 0d 09 09 09 |,....// |same....|
|00001310| 09 20 73 72 63 43 6f 70 | 79 2c 0d 09 09 09 09 20 |. srcCop|y,..... |
|00001320| 6e 69 6c 29 3b 0d 09 43 | 6c 6f 73 65 50 69 63 74 |nil);..C|losePict|
|00001330| 75 72 65 28 29 3b 09 09 | 09 09 09 09 2f 2f 20 63 |ure();..|....// c|
|00001340| 6f 6d 70 6c 65 74 65 73 | 20 63 72 65 61 74 69 6f |ompletes| creatio|
|00001350| 6e 20 70 72 6f 63 65 73 | 73 0d 09 0d 09 48 55 6e |n proces|s....HUn|
|00001360| 6c 6f 63 6b 28 28 48 61 | 6e 64 6c 65 29 70 6d 29 |lock((Ha|ndle)pm)|
|00001370| 3b 0d 09 28 2a 70 6d 29 | 2d 3e 70 6d 54 61 62 6c |;..(*pm)|->pmTabl|
|00001380| 65 20 3d 20 67 53 68 61 | 72 65 64 43 6c 75 74 3b |e = gSha|redClut;|
|00001390| 09 09 09 2f 2f 20 70 75 | 74 20 74 68 69 73 20 62 |...// pu|t this b|
|000013a0| 61 63 6b 0d 09 0d 09 48 | 61 6e 64 54 6f 48 61 6e |ack....H|andToHan|
|000013b0| 64 28 28 48 61 6e 64 6c | 65 20 2a 29 28 26 67 53 |d((Handl|e *)(&gS|
|000013c0| 68 61 72 65 64 43 6c 75 | 74 29 29 3b 09 09 2f 2f |haredClu|t));..//|
|000013d0| 20 6d 61 6b 65 20 61 20 | 63 6f 70 79 20 6f 66 20 | make a |copy of |
|000013e0| 74 68 65 20 63 6c 75 74 | 20 73 6f 20 69 74 20 63 |the clut| so it c|
|000013f0| 61 6e 20 62 65 20 73 74 | 6f 72 65 64 20 69 6e 20 |an be st|ored in |
|00001400| 74 68 65 20 66 69 6c 65 | 0d 09 09 09 09 09 09 09 |the file|........|
|00001410| 09 09 09 2f 2f 20 68 61 | 6e 64 6c 65 20 67 65 74 |...// ha|ndle get|
|00001420| 73 20 64 69 73 70 6f 73 | 65 64 20 77 68 65 6e 20 |s dispos|ed when |
|00001430| 63 6c 6f 73 69 6e 67 20 | 72 65 73 6f 75 72 63 65 |closing |resource|
|00001440| 20 66 69 6c 65 2e 0d 09 | 53 65 74 47 57 6f 72 6c | file...|SetGWorl|
|00001450| 64 28 6f 6c 64 50 6f 72 | 74 2c 20 6f 6c 64 44 65 |d(oldPor|t, oldDe|
|00001460| 76 69 63 65 29 3b 0d 09 | 72 65 74 75 72 6e 20 6e |vice);..|return n|
|00001470| 65 77 3b 0d 7d 0d 0d 2f | 2a 20 3d 3d 3d 3d 3d 3d |ew;.}../|* ======|
|00001480| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001490| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000014a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000014b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000014c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000014d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 20 2a 2f 0d 2f 2a 20 |========|= */./* |
|000014e0| 09 47 69 76 65 6e 20 74 | 68 61 74 20 74 68 69 73 |.Given t|hat this|
|000014f0| 20 70 69 63 74 73 20 61 | 72 65 20 6e 6f 74 20 67 | picts a|re not g|
|00001500| 6f 69 6e 67 20 74 6f 20 | 6c 6f 6f 6b 20 77 65 6c |oing to |look wel|
|00001510| 6c 20 77 69 74 68 6f 75 | 74 20 73 6f 6d 65 0d 09 |l withou|t some..|
|00001520| 70 72 65 2d 70 72 6f 63 | 65 73 73 69 6e 67 20 74 |pre-proc|essing t|
|00001530| 68 65 20 62 65 73 74 20 | 77 61 79 20 74 6f 20 73 |he best |way to s|
|00001540| 74 6f 72 65 20 74 68 65 | 6d 20 69 73 20 6e 6f 74 |tore the|m is not|
|00001550| 20 61 20 50 49 43 54 20 | 66 69 6c 65 20 74 68 61 | a PICT |file tha|
|00001560| 74 20 75 73 65 72 73 0d | 09 6d 61 79 20 66 65 65 |t users.|.may fee|
|00001570| 6c 20 74 65 6d 70 74 65 | 64 20 74 6f 20 76 69 65 |l tempte|d to vie|
|00001580| 77 20 77 69 74 68 20 73 | 6f 6d 65 20 6f 74 68 65 |w with s|ome othe|
|00001590| 72 20 61 70 70 2e 49 66 | 20 74 68 65 20 70 69 63 |r app.If| the pic|
|000015a0| 74 73 20 61 72 65 20 6e | 6f 74 20 76 65 72 79 20 |ts are n|ot very |
|000015b0| 62 69 67 20 0d 09 69 6e | 20 73 69 7a 65 20 74 68 |big ..in| size th|
|000015c0| 65 6e 20 72 65 73 6f 75 | 72 63 65 73 20 63 6f 75 |en resou|rces cou|
|000015d0| 6c 64 20 62 65 20 75 73 | 65 64 2c 20 66 6f 72 20 |ld be us|ed, for |
|000015e0| 6c 61 72 67 65 20 69 6d | 61 67 65 73 20 61 20 64 |large im|ages a d|
|000015f0| 61 74 61 20 66 69 6c 65 | 20 69 73 20 72 65 63 6f |ata file| is reco|
|00001600| 6d 6d 65 6e 64 65 64 2e | 0d 09 0d 09 46 6f 72 20 |mmended.|....For |
|00001610| 74 68 65 20 65 78 65 72 | 63 69 73 65 20 77 65 27 |the exer|cise we'|
|00001620| 6c 6c 20 75 73 65 20 61 | 20 70 69 63 74 20 66 69 |ll use a| pict fi|
|00001630| 6c 65 20 74 68 61 74 20 | 69 73 20 65 61 73 79 20 |le that |is easy |
|00001640| 74 6f 20 64 69 73 65 63 | 74 3b 20 74 68 65 20 66 |to disec|t; the f|
|00001650| 6f 6c 6c 6f 77 69 6e 67 | 0d 09 63 6f 64 65 20 70 |ollowing|..code p|
|00001660| 72 6f 6d 74 73 20 74 68 | 65 20 75 73 65 72 20 66 |romts th|e user f|
|00001670| 6f 72 20 61 20 70 6c 61 | 63 65 20 77 68 65 72 65 |or a pla|ce where|
|00001680| 20 74 6f 20 70 75 74 20 | 74 68 65 20 72 65 73 75 | to put |the resu|
|00001690| 6c 74 69 6e 67 20 70 69 | 63 74 20 61 6e 64 20 74 |lting pi|ct and t|
|000016a0| 68 65 0d 09 27 63 6c 75 | 74 27 20 72 65 73 6f 75 |he..'clu|t' resou|
|000016b0| 72 63 65 20 74 6f 20 62 | 65 20 75 73 65 64 20 77 |rce to b|e used w|
|000016c0| 68 65 6e 20 76 69 65 77 | 69 6e 67 20 69 74 2e 0d |hen view|ing it..|
|000016d0| 09 0d 09 0d 2a 2f 0d 42 | 6f 6f 6c 65 61 6e 20 53 |....*/.B|oolean S|
|000016e0| 61 76 65 43 4c 55 54 4c | 65 73 73 50 69 63 74 28 |aveCLUTL|essPict(|
|000016f0| 50 69 63 48 61 6e 64 6c | 65 20 61 50 69 63 74 29 |PicHandl|e aPict)|
|00001700| 20 7b 0d 09 50 6f 69 6e | 74 09 09 64 6c 67 50 6f | {..Poin|t..dlgPo|
|00001710| 73 20 3d 20 7b 31 30 30 | 2c 31 30 30 7d 3b 09 09 |s = {100|,100};..|
|00001720| 09 09 2f 2a 20 50 6f 73 | 69 74 69 6f 6e 20 74 68 |../* Pos|ition th|
|00001730| 65 20 64 69 61 6c 6f 67 | 20 62 6f 78 20 2a 2f 0d |e dialog| box */.|
|00001740| 09 53 46 52 65 70 6c 79 | 09 09 73 66 72 3b 09 09 |.SFReply|..sfr;..|
|00001750| 09 09 09 09 09 2f 2a 20 | 53 74 64 46 69 6c 65 20 |...../* |StdFile |
|00001760| 72 65 70 6c 79 20 2a 2f | 0d 09 73 68 6f 72 74 20 |reply */|..short |
|00001770| 09 09 66 69 6c 65 52 65 | 66 3b 0d 09 6c 6f 6e 67 |..fileRe|f;..long|
|00001780| 09 09 70 69 63 74 53 69 | 7a 65 20 3d 20 47 65 74 |..pictSi|ze = Get|
|00001790| 48 61 6e 64 6c 65 53 69 | 7a 65 28 28 48 61 6e 64 |HandleSi|ze((Hand|
|000017a0| 6c 65 29 61 50 69 63 74 | 29 3b 0d 09 42 6f 6f 6c |le)aPict|);..Bool|
|000017b0| 65 61 6e 20 09 72 65 73 | 75 6c 74 20 3d 20 66 61 |ean .res|ult = fa|
|000017c0| 6c 73 65 3b 0d 09 0d 09 | 2f 2a 20 50 72 6f 6d 70 |lse;....|/* Promp|
|000017d0| 74 20 74 68 65 20 75 73 | 65 72 20 66 6f 72 20 61 |t the us|er for a|
|000017e0| 20 66 69 6c 65 20 6e 61 | 6d 65 20 61 6e 64 20 63 | file na|me and c|
|000017f0| 72 65 61 74 65 20 69 74 | 20 2a 2f 0d 09 53 46 50 |reate it| */..SFP|
|00001800| 75 74 46 69 6c 65 28 64 | 6c 67 50 6f 73 2c 20 22 |utFile(d|lgPos, "|
|00001810| 5c 70 50 49 43 54 20 66 | 69 6c 65 20 74 6f 20 63 |\pPICT f|ile to c|
|00001820| 72 65 61 74 65 3a 22 2c | 22 5c 70 50 49 43 54 20 |reate:",|"\pPICT |
|00001830| 46 69 6c 65 22 2c 6e 69 | 6c 2c 26 73 66 72 29 3b |File",ni|l,&sfr);|
|00001840| 0d 09 69 66 20 28 73 66 | 72 2e 67 6f 6f 64 29 20 |..if (sf|r.good) |
|00001850| 7b 0d 09 20 20 69 66 20 | 28 20 66 69 6c 65 52 65 |{.. if |( fileRe|
|00001860| 66 20 3d 20 4f 70 65 6e | 50 69 63 74 75 72 65 46 |f = Open|PictureF|
|00001870| 69 6c 65 28 26 73 66 72 | 29 20 29 20 7b 0d 09 20 |ile(&sfr|) ) {.. |
|00001880| 20 09 48 4c 6f 63 6b 28 | 28 48 61 6e 64 6c 65 29 | .HLock(|(Handle)|
|00001890| 61 50 69 63 74 29 3b 0d | 09 20 20 20 20 69 66 20 |aPict);.|. if |
|000018a0| 28 20 46 53 57 72 69 74 | 65 28 66 69 6c 65 52 65 |( FSWrit|e(fileRe|
|000018b0| 66 2c 20 26 70 69 63 74 | 53 69 7a 65 2c 20 28 50 |f, &pict|Size, (P|
|000018c0| 74 72 29 2a 61 50 69 63 | 74 29 20 29 20 0d 09 09 |tr)*aPic|t) ) ...|
|000018d0| 20 20 4b 69 6c 6c 46 69 | 6c 65 28 66 69 6c 65 52 | KillFi|le(fileR|
|000018e0| 65 66 2c 20 26 73 66 72 | 29 3b 0d 09 20 20 20 20 |ef, &sfr|);.. |
|000018f0| 65 6c 73 65 20 7b 0d 09 | 09 20 20 43 6c 6f 73 65 |else {..|. Close|
|00001900| 50 69 63 74 75 72 65 46 | 69 6c 65 28 66 69 6c 65 |PictureF|ile(file|
|00001910| 52 65 66 2c 20 26 73 66 | 72 2c 20 61 50 69 63 74 |Ref, &sf|r, aPict|
|00001920| 29 3b 0d 09 09 20 20 72 | 65 73 75 6c 74 20 3d 20 |);... r|esult = |
|00001930| 74 72 75 65 3b 0d 09 09 | 7d 0d 09 20 20 09 48 55 |true;...|}.. .HU|
|00001940| 6e 6c 6f 63 6b 28 28 48 | 61 6e 64 6c 65 29 61 50 |nlock((H|andle)aP|
|00001950| 69 63 74 29 3b 0d 09 20 | 20 7d 0d 09 7d 0d 09 2f |ict);.. | }..}../|
|00001960| 2a 20 74 68 65 20 70 69 | 63 74 20 69 73 20 69 6e |* the pi|ct is in|
|00001970| 20 74 68 65 20 66 69 6c | 65 20 6e 6f 77 20 77 65 | the fil|e now we|
|00001980| 20 73 61 76 65 20 74 68 | 65 20 27 63 6c 75 74 27 | save th|e 'clut'|
|00001990| 20 72 65 73 6f 75 72 63 | 65 20 74 68 61 74 20 77 | resourc|e that w|
|000019a0| 69 6c 6c 20 61 6c 6c 6f | 77 0d 09 20 20 20 74 6f |ill allo|w.. to|
|000019b0| 20 76 69 65 77 20 74 68 | 65 20 69 6d 61 67 65 20 | view th|e image |
|000019c0| 69 6e 20 69 74 73 20 66 | 75 6c 6c 20 63 6f 6c 6f |in its f|ull colo|
|000019d0| 72 2e 0d 09 2a 2f 0d 09 | 53 61 76 65 43 4c 55 54 |r...*/..|SaveCLUT|
|000019e0| 52 65 73 6f 75 72 63 65 | 28 26 73 66 72 29 3b 0d |Resource|(&sfr);.|
|000019f0| 09 0d 09 72 65 74 75 72 | 6e 20 72 65 73 75 6c 74 |...retur|n result|
|00001a00| 3b 0d 7d 0d 0d 2f 2a 20 | 3d 3d 3d 3d 3d 3d 3d 3d |;.}../* |========|
|00001a10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a60| 3d 3d 3d 3d 3d 3d 3d 20 | 2a 2f 0d 2f 2a 20 3d 3d |======= |*/./* ==|
|00001a70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001aa0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001ab0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001ac0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 20 2a 2f |========|===== */|
|00001ad0| 0d 2f 2a 20 74 68 69 73 | 20 69 73 20 74 68 65 20 |./* this| is the |
|00001ae0| 72 65 70 6c 61 63 65 6d | 65 6e 74 20 66 6f 72 20 |replacem|ent for |
|00001af0| 74 68 65 20 73 74 61 6e | 64 61 72 64 20 62 69 74 |the stan|dard bit|
|00001b00| 73 20 70 72 6f 63 2e 20 | 57 68 65 6e 20 61 20 70 |s proc. |When a p|
|00001b10| 69 63 74 75 72 65 20 69 | 73 20 62 65 69 6e 67 20 |icture i|s being |
|00001b20| 64 72 61 77 6e 5d 0d 09 | 74 68 65 20 72 6f 75 74 |drawn]..|the rout|
|00001b30| 69 6e 65 20 69 73 20 63 | 61 6c 6c 65 64 20 6a 75 |ine is c|alled ju|
|00001b40| 73 74 20 62 65 66 6f 72 | 65 20 74 68 65 20 70 69 |st befor|e the pi|
|00001b50| 78 6d 61 70 20 69 73 20 | 74 72 61 6e 73 66 65 72 |xmap is |transfer|
|00001b60| 72 65 64 20 74 6f 20 74 | 68 65 20 64 65 73 74 69 |red to t|he desti|
|00001b70| 6e 61 74 69 6f 6e 3b 0d | 09 61 74 20 74 68 69 73 |nation;.|.at this|
|00001b80| 20 74 69 6d 65 20 6f 75 | 72 20 72 6f 75 74 69 6e | time ou|r routin|
|00001b90| 65 20 77 69 6c 6c 20 72 | 65 70 6c 61 63 65 20 74 |e will r|eplace t|
|00001ba0| 68 65 20 63 6f 6c 6f 72 | 20 74 61 62 6c 65 20 66 |he color| table f|
|00001bb0| 69 6c 65 64 20 77 69 74 | 68 20 74 68 65 20 63 6f |iled wit|h the co|
|00001bc0| 6c 6f 72 0d 09 74 61 62 | 6c 65 20 63 6f 6e 74 61 |lor..tab|le conta|
|00001bd0| 69 6e 65 64 20 69 6e 20 | 74 68 65 20 27 63 6c 75 |ined in |the 'clu|
|00001be0| 74 27 20 72 65 73 6f 75 | 72 63 65 2e 0d 2a 2f 0d |t' resou|rce..*/.|
|00001bf0| 0d 70 61 73 63 61 6c 20 | 76 6f 69 64 20 41 64 64 |.pascal |void Add|
|00001c00| 43 6c 75 74 50 72 6f 63 | 28 42 69 74 4d 61 70 20 |ClutProc|(BitMap |
|00001c10| 2a 73 72 63 2c 20 0d 09 | 09 09 52 65 63 74 20 2a |*src, ..|..Rect *|
|00001c20| 73 72 63 52 2c 20 52 65 | 63 74 20 2a 64 73 74 52 |srcR, Re|ct *dstR|
|00001c30| 2c 0d 09 09 09 73 68 6f | 72 74 20 6d 6f 64 65 2c |,....sho|rt mode,|
|00001c40| 20 52 67 6e 48 61 6e 64 | 6c 65 20 6d 73 6b 29 20 | RgnHand|le msk) |
|00001c50| 0d 7b 0d 09 43 54 61 62 | 48 61 6e 64 6c 65 09 73 |.{..CTab|Handle.s|
|00001c60| 61 76 65 43 54 48 3b 0d | 0d 09 2f 2f 20 53 61 76 |aveCTH;.|..// Sav|
|00001c70| 65 20 63 6f 6c 6f 72 20 | 74 61 62 6c 65 20 68 61 |e color |table ha|
|00001c80| 6e 64 6c 65 2e 20 0d 09 | 73 61 76 65 43 54 48 20 |ndle. ..|saveCTH |
|00001c90| 3d 20 28 28 50 69 78 4d | 61 70 50 74 72 29 20 73 |= ((PixM|apPtr) s|
|00001ca0| 72 63 29 2d 3e 70 6d 54 | 61 62 6c 65 3b 09 0d 09 |rc)->pmT|able;...|
|00001cb0| 2f 2f 20 50 75 74 20 27 | 63 6c 75 74 27 20 72 65 |// Put '|clut' re|
|00001cc0| 73 6f 75 72 63 65 2e 0d | 09 28 28 50 69 78 4d 61 |source..|.((PixMa|
|00001cd0| 70 50 74 72 29 20 73 72 | 63 29 2d 3e 70 6d 54 61 |pPtr) sr|c)->pmTa|
|00001ce0| 62 6c 65 20 3d 20 67 53 | 68 61 72 65 64 43 6c 75 |ble = gS|haredClu|
|00001cf0| 74 3b 0d 09 2f 2f 20 4c | 65 74 20 51 75 69 63 6b |t;..// L|et Quick|
|00001d00| 44 72 61 77 20 64 6f 20 | 74 68 65 20 77 6f 72 6b |Draw do |the work|
|00001d10| 2e 0d 09 53 74 64 42 69 | 74 73 28 73 72 63 2c 20 |...StdBi|ts(src, |
|00001d20| 73 72 63 52 2c 20 64 73 | 74 52 2c 20 6d 6f 64 65 |srcR, ds|tR, mode|
|00001d30| 2c 20 6d 73 6b 29 3b 20 | 0d 09 2f 2f 20 52 65 73 |, msk); |..// Res|
|00001d40| 74 6f 72 65 20 73 61 76 | 65 64 20 68 61 6e 64 6c |tore sav|ed handl|
|00001d50| 65 20 61 6e 64 20 72 65 | 74 75 72 6e 2e 0d 09 28 |e and re|turn...(|
|00001d60| 28 50 69 78 4d 61 70 50 | 74 72 29 20 73 72 63 29 |(PixMapP|tr) src)|
|00001d70| 2d 3e 70 6d 54 61 62 6c | 65 20 3d 20 73 61 76 65 |->pmTabl|e = save|
|00001d80| 43 54 48 3b 0d 7d 0d 0d | 76 6f 69 64 09 49 6e 69 |CTH;.}..|void.Ini|
|00001d90| 74 50 72 6f 63 73 28 43 | 51 44 50 72 6f 63 73 20 |tProcs(C|QDProcs |
|00001da0| 2a 74 68 65 50 72 6f 63 | 73 29 0d 7b 0d 09 53 65 |*theProc|s).{..Se|
|00001db0| 74 53 74 64 43 50 72 6f | 63 73 28 74 68 65 50 72 |tStdCPro|cs(thePr|
|00001dc0| 6f 63 73 29 3b 09 2f 2f | 20 64 65 66 61 75 6c 74 |ocs);.//| default|
|00001dd0| 20 70 72 6f 63 73 0d 09 | 74 68 65 50 72 6f 63 73 | procs..|theProcs|
|00001de0| 2d 3e 62 69 74 73 50 72 | 6f 63 20 3d 20 4e 65 77 |->bitsPr|oc = New|
|00001df0| 51 44 42 69 74 73 50 72 | 6f 63 28 41 64 64 43 6c |QDBitsPr|oc(AddCl|
|00001e00| 75 74 50 72 6f 63 29 3b | 0d 7d 0d 0d 09 0d 00 00 |utProc);|.}......|
|00001e10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e80| 00 00 01 00 00 00 01 6e | 00 00 00 6e 00 00 00 3e |.......n|...n...>|
|00001e90| 43 4e 3c a9 a0 a5 43 67 | 2e 66 2d 50 ff 94 0a ff |CN<...Cg|.f-P....|
|00001ea0| 94 41 f1 01 b6 09 0a ff | 9a 41 f8 01 e4 60 17 20 |.A......|.A...`. |
|00001eb0| 0a 43 4c 55 54 4c 65 73 | 73 2e 63 00 02 00 00 00 |.CLUTLes|s.c.....|
|00001ec0| 54 45 58 54 4d 4d 43 43 | 01 00 00 00 00 40 00 00 |TEXTMMCC|.....@..|
|00001ed0| 00 00 54 45 58 54 4d 4d | 43 43 01 00 00 00 00 40 |..TEXTMM|CC.....@|
|00001ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ef0| 00 00 a8 e1 79 ae 00 00 | 1d 8e 00 00 01 ac 05 b3 |....y...|........|
|00001f00| 06 1c d0 23 1c f8 fa 12 | 1b 5c 18 2c 08 b8 4c 09 |...#....|.\.,..L.|
|00001f10| 38 cd 0f 18 a8 a4 60 e4 | 3b 18 2f 14 76 a1 05 48 |8.....`.|;./.v..H|
|00001f20| 6f 06 a8 7e a8 93 a8 9e | 24 6b a4 19 20 4a a0 69 |o..~....|$k.. J.i|
|00001f30| 1f 00 c5 2a a8 a3 36 2e | 05 0a 6f 00 00 86 2c 12 |...*..6.|..o...,.|
|00001f40| 3a 2e 1c 3e 2c 11 9e 6c | a4 09 9e 6b 1c 53 47 55 |:..>,..l|...k.SGU|
|00001f50| 4f bb 3f 05 3f 03 08 a8 | 86 be 5f 6c 58 20 55 1d |O.?.?...|.._lX U.|
|00001f60| 10 28 00 46 38 00 67 08 | c0 59 3c a8 88 30 03 55 |.(.F8.g.|.Y<..0.U|
|00001f70| 00 91 82 c7 38 40 9e c0 | 22 4f 20 46 d0 c5 07 30 |....8@..|"O F...0|
|00001f80| 00 00 00 1e 00 3a 00 0b | 03 6c 02 5c 00 3a 00 0b |.....:..|.l.\.:..|
|00001f90| 03 6c 02 5c 00 00 00 00 | 00 00 00 00 00 00 00 00 |.l.\....|........|
|00001fa0| 00 00 00 00 00 48 00 09 | 4d 6f 6e 61 63 6f 00 00 |.....H..|Monaco..|
|00001fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fc0| 00 00 00 00 00 00 00 00 | 00 03 00 04 00 3c 00 04 |........|.....<..|
|00001fd0| 01 dc 02 7c 00 3c 00 04 | 01 dc 02 7c aa 8d 17 ae |...|.<..|...|....|
|00001fe0| 00 00 1d 0d 00 00 1d 16 | 00 00 19 70 01 00 00 00 |........|...p....|
|00001ff0| 01 00 00 00 01 6e 00 00 | 00 6e 00 00 00 3e 00 f0 |.....n..|.n...>..|
|00002000| 36 64 23 fe 00 00 00 1c | 00 3e 00 00 4d 50 53 52 |6d#.....|.>..MPSR|
|00002010| 00 01 00 0a 03 f0 ff ff | 00 00 00 00 00 00 00 00 |........|........|
|00002020| 03 ed ff ff 00 00 00 22 | 00 00 00 00 00 00 00 00 |......."|........|
|00002030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+